home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WFC010.ZIP / INCLUDE / DRAWGRID.HPP < prev    next >
C/C++ Source or Header  |  1995-12-07  |  6KB  |  153 lines

  1. #if ! defined ( DRAWING_OBJECTS_GRID_CLASS_HEADER )
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like as long as you don't try to sell it.
  9. **
  10. ** Any attempt to sell WFC in source code form must have the permission
  11. ** of the original author. You can produce commercial executables with
  12. ** WFC but you can't sell WFC.
  13. **
  14. ** Copyright, 1995, Samuel R. Blackburn
  15. **
  16. ** $Workfile: $
  17. ** $Revision: $
  18. ** $Modtime: $
  19. */
  20.  
  21. #define DRAWING_OBJECTS_GRID_CLASS_HEADER
  22.  
  23. class CDrawingObjectGrid : public CObject
  24. {
  25.    DECLARE_SERIAL( CDrawingObjectGrid )
  26.  
  27.    protected:
  28.  
  29.       void m_Initialize( void );
  30.       void m_SetRectangles( void );
  31.  
  32.       DWORD m_NumberOfRows;
  33.       DWORD m_NumberOfColumns;
  34.       DWORD m_VerticalSpacing;
  35.       DWORD m_HorizontalSpacing;
  36.  
  37.       CObArray m_ObjectArray;
  38.  
  39.       CString m_Name;
  40.  
  41.    public:
  42.  
  43.       CDrawingObjectGrid();
  44.       CDrawingObjectGrid( DWORD number_of_rows, DWORD number_of_columns );
  45.  
  46.       virtual ~CDrawingObjectGrid();
  47.  
  48.       virtual void         Draw( CDC& device_context );
  49.       virtual CRectangle*& ElementAt( DWORD row_number, DWORD column_number );
  50.       virtual CRectangle*  GetAt( DWORD row_number, DWORD column_number );
  51.       virtual DWORD        GetHeight( void ) const;
  52.       virtual int          GetHorizontalSpacing( void ) const;
  53.       virtual BOOL         GetIndexFromPoint( DWORD& row_index, DWORD& column_index, const CPoint& point );
  54.       virtual void         GetName( CString& name_of_grid ) const;
  55.       virtual DWORD        GetNumberOfColumns( void ) const;
  56.       virtual DWORD        GetNumberOfRows( void ) const;
  57.       virtual void         GetRectangle( CRect& rect ) const;
  58.       virtual DWORD        GetVerticalSpacing( void ) const;
  59.       virtual DWORD        GetWidth( void ) const;
  60.       virtual void         RemoveAll( void );
  61.       virtual void         Serialize( CArchive& archive );
  62.       virtual void         SetAt( DWORD row_number, DWORD column_number, CRectangle *new_element );
  63.       virtual void         SetFillColor( DWORD row_number, DWORD column_number, COLORREF color );
  64.       virtual void         SetHorizontalSpacing( DWORD horizontal_spacing );
  65.       virtual void         SetLineColor( DWORD row_number, DWORD columen_number, COLORREF color );
  66.       virtual void         SetName( LPCTSTR name_of_grid = NULL );
  67.       virtual void         SetRectangle( const CRect& source );
  68.       virtual void         SetSize( DWORD number_of_rows, DWORD number_of_columns );
  69.       virtual void         SetVerticalSpacing( DWORD vertical_spacing );
  70.  
  71. #if defined( _DEBUG )
  72.  
  73.       virtual void Dump( CDumpContext& dump_context ) const;
  74.  
  75. #endif // _DEBUG
  76. };
  77.  
  78. #define LABELED_GRID_ROW_NAMES     1
  79. #define LABELED_GRID_COLUMN_NAMES  2
  80. #define LABELED_GRID_ROWS_TITLE    4
  81. #define LABELED_GRID_COLUMNS_TITLE 8
  82. #define LABELED_GRID_ALL_TITLES ( LABELED_GRID_ROW_NAMES | LABELED_GRID_COLUMN_NAMES | LABELED_GRID_ROWS_TITLE | LABELED_GRID_COLUMNS_TITLE )
  83.  
  84. class CLabeledGrid : public CDrawingObjectGrid
  85. {
  86.    DECLARE_SERIAL( CLabeledGrid )
  87.  
  88.    private:
  89.  
  90.       void m_Initialize( void );
  91.  
  92.    protected:
  93.  
  94.       CStringArray m_ColumnNames;
  95.       CStringArray m_RowNames;
  96.  
  97.       CString m_RowsTitle;
  98.       CString m_ColumnsTitle;
  99.  
  100.       DWORD m_ColumnFontSize;
  101.       DWORD m_ColumnsTitleFontSize;
  102.       DWORD m_RowFontSize;
  103.       DWORD m_RowsTitleFontSize;
  104.       DWORD m_NumberOfLogicalUnitsInLongestRowName;
  105.       DWORD m_NumberOfLogicalUnitsInLongestColumnName;
  106.       DWORD m_NumberOfLogicalUnitsInRowsTitle;
  107.       DWORD m_NumberOfLogicalUnitsInColumnsTitle;
  108.       DWORD m_LabelOptions;
  109.  
  110.       CFont m_RowNamesFont;
  111.       CFont m_ColumnNamesFont;
  112.       CFont m_RowsTitleFont;
  113.       CFont m_ColumnsTitleFont;
  114.  
  115.       virtual void m_SetColumnFontSize( CDC& device_context, DWORD font_size );
  116.       virtual void m_SetColumnsTitleFontSize( CDC& device_context, DWORD font_size );
  117.       virtual void m_SetRowFontSize( CDC& device_context, DWORD font_size );
  118.       virtual void m_SetRowsTitleFontSize( CDC& device_context, DWORD font_size );
  119.  
  120.    public:
  121.  
  122.       CLabeledGrid();
  123.       CLabeledGrid( DWORD number_of_rows, DWORD number_of_columns );
  124.       virtual ~CLabeledGrid();
  125.  
  126.       virtual void Draw( CDC& device_context );
  127.       virtual void GetColumnName( DWORD column_number, CString& column_name ) const;
  128.       virtual void GetColumnsTitle( CString& columns_title ) const;
  129.       virtual void GetRowName( DWORD row_number, CString& row_name ) const;
  130.       virtual void GetRowsTitle( CString& rows_title ) const;
  131.       virtual void PrepareForPainting( CDC&  device_context,
  132.                                        DWORD row_font_size           = 8,
  133.                                        DWORD column_font_size        = 8,
  134.                                        DWORD rows_title_font_size    = 14,
  135.                                        DWORD columns_title_font_size = 14 );
  136.       virtual void RemoveAll( void );
  137.       virtual void Serialize( CArchive& archive );
  138.       virtual void SetColumnName( DWORD column_number, LPCTSTR column_name );
  139.       virtual void SetColumnsTitle( LPCTSTR columns_title = NULL );
  140.       virtual void SetLabelOptions( DWORD options );
  141.       virtual void SetRowName( DWORD row_number, LPCTSTR row_name );
  142.       virtual void SetRowsTitle( LPCTSTR rows_title = NULL );
  143.       virtual void SetSize( DWORD number_of_rows, DWORD number_of_columns );
  144.  
  145. #if defined( _DEBUG )
  146.  
  147.       virtual void Dump( CDumpContext& dump_context ) const;
  148.  
  149. #endif // _DEBUG
  150. };
  151.  
  152. #endif // DRAWING_OBJECTS_GRID_CLASS_HEADER
  153.